Category suggestions relating to a search

ABSTRACT

A system determines categories for business listings identified in a list of search results and assigns scores to the categories. The system presents one or more high scoring ones of the categories as one or more category suggestions relating to the list of search results.

BACKGROUND

1. Field of the Invention

Implementations described herein relate generally to informationretrieval and, more particularly, to the presentation of categorysuggestions relating to a search.

2. Description of Related Art

Modern computer networks, and in particular, the Internet, have madelarge bodies of information widely and easily available. Internet searchengines, for instance, index many millions of web documents that arelinked to the Internet. A user connected to the Internet can enter asimple search query to quickly locate web documents relevant to thesearch query.

Web directories also exist to help users find information in which theyare interested. The directories separate web documents into differenthierarchical categories based on content. The directories often differin the categories they create and the names assigned to the categories.The directories also often differ in the web documents that are includedin their particular categories.

Finding information in a web directory can be difficult. A user may needto traverse several layers of categories—sometimes faced with thedecision of selecting between two equally appealing categories.

SUMMARY

According to one aspect, a method may include determining categories forbusiness listings identified in a list of search results, assigningscores to the categories, and presenting one or more high scoring onesof the categories as one or more category suggestions relating to thelist of search results.

According to another aspect, a search system may include a search engineand a category suggestion engine. The search engine may receive a searchquery associated with a geographic area and identify a group ofdocuments that are associated with locations in the geographic areabased on the search query. The category suggestion engine may identifycategories associated with documents in the group of documents, scorethe categories, and present one or more highest scoring ones of thecategories as one or more category suggestions.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of this specification, illustrate an embodiment of the inventionand, together with the description, explain the invention. In thedrawings,

FIG. 1 is a diagram of a directory of business listings;

FIG. 2 is an exemplary diagram of a network in which systems and methodsconsistent with the principles of the invention may be implemented;

FIG. 3 is an exemplary diagram of a client or server of FIG. 2 accordingto an implementation consistent with the principles of the invention;

FIG. 4 is an exemplary diagram of a portion of the search system of FIG.2 according to an implementation consistent with the principles of theinvention;

FIG. 5 is a flowchart of exemplary processing for presenting categorysuggestions relating to a search according to an implementationconsistent with the principles of the invention;

FIGS. 6-9 are exemplary diagrams of a local search user interface thatmay be presented to a user according to an implementation consistentwith the principles of the invention.

DETAILED DESCRIPTION

The following detailed description of the invention refers to theaccompanying drawings. The same reference numbers in different drawingsmay identify the same or similar elements. Also, the following detaileddescription does not limit the invention.

Overview

FIG. 1 is a diagram of a web directory of business listings. As shown inFIG. 1, the directory includes categories that form a hierarchy. The“clothing and accessories” category, for example, is shown as includingseveral sub-categories (e.g., “accessories,” “apparel brokers,”“clothing stores,” and “wholesale and manufacturers”) andsub-sub-categories (e.g., “boutiques,” “children's clothing,” “maternityclothing,” and “women's clothing”). Business listings may be assigned tothe appropriate categories. For example, a business that sells maternityclothing may be assigned to the maternity clothing category.

Systems and methods consistent with the principles of the invention mayuse information regarding the categories to which documents are assignedto suggest categories that relate to a search. The categories may beused to further define the search or replace the search and present auser with results that are relevant to the user's interests.

A “document,” as the term is used herein, is to be broadly interpretedto include any machine-readable and machine-storable work product. Adocument may include, for example, an e-mail, a web site, a file, acombination of files, one or more files with embedded links to otherfiles, a news group posting, a blog, a web advertisement, etc. In thecontext of the Internet, a common document is a web page. Web pagesoften include textual information and may include embedded information(such as meta information, images, hyperlinks, etc.) and/or embeddedinstructions (such as Javascript, etc.). A “link,” as the term is usedherein, is to be broadly interpreted to include any reference to/from adocument from/to another document or another part of the same document.

Exemplary Network Configuration

FIG. 2 is an exemplary diagram of a network 200 in which systems andmethods consistent with the principles of the invention may beimplemented. Network 200 may include multiple clients 210 connected tomultiple servers 220-240 via a network 250. Two clients 210 and threeservers 220-240 have been illustrated as connected to network 250 forsimplicity. In practice, there may be more or fewer clients and servers.Also, in some instances, a client may perform the functions of a serverand a server may perform the functions of a client.

Clients 210 may include client entities. An entity may be defined as adevice, such as a wireless telephone, a personal computer, a personaldigital assistant (PDA), a lap top, or another type of computation orcommunication device, a thread or process running on one of thesedevices, and/or an object executable by one of these devices. Servers220-240 may include server entities that gather, process, search, and/ormaintain documents in a manner consistent with the principles of theinvention.

In an implementation consistent with the principles of the invention,server 220 may include a search system 225 usable by clients 210. Server220 may crawl a corpus of documents (e.g., web documents), index thedocuments, and store information associated with the documents in arepository of documents. Servers 230 and 240 may store or maintaindocuments that may be crawled or analyzed by server 120.

While servers 220-240 are shown as separate entities, it may be possiblefor one or more of servers 220-240 to perform one or more of thefunctions of another one or more of servers 220-240. For example, it maybe possible that two or more of servers 220-240 are implemented as asingle server. It may also be possible for a single one of servers220-240 to be implemented as two or more separate (and possiblydistributed) devices.

Network 250 may include a local area network (LAN), a wide area network(WAN), a telephone network, such as the Public Switched TelephoneNetwork (PSTN), an intranet, the Internet, a memory device, or acombination of networks. Clients 210 and servers 220-240 may connect tonetwork 250 via wired, wireless, and/or optical connections.

Exemplary Client/Server Architecture

FIG. 3 is an exemplary diagram of a client or server entity (hereinaftercalled “client/server entity”), which may correspond to one or more ofclients 210 and/or servers 220-240, according to an implementationconsistent with the principles of the invention. The client/serverentity may include a bus 310, a processor 320, a main memory 330, a readonly memory (ROM) 340, a storage device 350, an input device 360, anoutput device 370, and a communication interface 380. Bus 310 mayinclude a path that permits communication among the elements of theclient/server entity.

Processor 320 may include a conventional processor, microprocessor, orprocessing logic that interprets and executes instructions. Main memory330 may include a random access memory (RAM) or another type of dynamicstorage device that may store information and instructions for executionby processor 320. ROM 340 may include a conventional ROM device oranother type of static storage device that may store static informationand instructions for use by processor 320. Storage device 350 mayinclude a magnetic and/or optical recording medium and its correspondingdrive.

Input device 360 may include a conventional mechanism that permits anoperator to input information to the client/server entity, such as akeyboard, a mouse, a pen, voice recognition and/or biometric mechanisms,etc. Output device 370 may include a conventional mechanism that outputsinformation to the operator, including a display, a printer, a speaker,etc. Communication interface 380 may include any transceiver-likemechanism that enables the client/server entity to communicate withother devices and/or systems. For example, communication interface 380may include mechanisms for communicating with another device or systemvia a network, such as network 250.

As will be described in detail below, the client/server entity,consistent with the principles of the invention, may perform certaindocument processing-related operations. The client/server entity mayperform these operations in response to processor 320 executing softwareinstructions contained in a computer-readable medium, such as memory330. A computer-readable medium may be defined as a physical or logicalmemory device and/or carrier wave.

The software instructions may be read into memory 330 from anothercomputer-readable medium, such as data storage device 350, or fromanother device via communication interface 380. The softwareinstructions contained in memory 330 may cause processor 320 to performprocesses that will be described later. Alternatively, hardwiredcircuitry may be used in place of or in combination with softwareinstructions to implement processes consistent with the principles ofthe invention. Thus, implementations consistent with the principles ofthe invention are not limited to any specific combination of hardwarecircuitry and software.

Exemplary Search System

FIG. 4 is an exemplary diagram of a portion of search system 225according to an implementation consistent with the principles of theinvention. The portion of search system 225 illustrated in FIG. 4 mayinclude search engine 410 and category suggestion engine 420. Whilesearch engine 410 and category suggestion engine 420 are shown asseparate engines, in practice, search engine 410 may include categorysuggestion engine 420.

Search engine 410 may include a traditional search engine that returns aranked set of documents related to a user search query. Search engine410 may include a general search engine, such as one based on documentsfrom a large corpus, such as documents on the web, or a more specializedsearch engine, such as a local search engine.

In operation, search engine 410 may receive a user search query. Searchengine 410 may identify a set of documents that match the search queryby comparing the search terms in the query to documents in the documentcorpus. There are a number of known techniques that search engine 410may use to identify documents related to a set of search terms. Forexample, when the set of search terms includes a single search term,search engine 410 might identify documents that contain the search term.When the set of search terms includes multiple search terms, searchengine 410 might identify documents that contain the search terms as aphrase. Alternatively or additionally, search engine 410 might identifydocuments that contain the search terms, but not necessarily together.Alternatively or additionally, search engine 410 might identifydocuments that contain less than all of the search terms, or synonyms ofthe search terms. Yet other techniques for identifying relevantdocuments are known to those skilled in the art.

Search engine 410 might generate an information retrieval (IR) score forthe identified documents. There are a number of known techniques thatsearch engine 410 may use to generate an IR score for a document. Forexample, search engine 410 may generate an IR score based on the numberof occurrences of the search terms in the document. Alternatively oradditionally, search engine 410 may generate an IR score based on wherethe search terms occur within the document (e.g., title, content, etc.)or characteristics of the search terms (e.g., font, size, color, etc.).Alternatively or additionally, search engine 410 may weight a searchterm differently from another search term when multiple search terms arepresent. Alternatively or additionally, search engine 410 may considerthe proximity of the search terms when multiple search terms arepresent. Yet other techniques for generating an IR score for a documentare known to those skilled in the art.

Search engine 410 may sort the identified documents based on their IRscores and output them as a list of search results to categorysuggestion engine 420. In another implementation, search engine 410 maygenerate total scores for the documents based on a combination of theirIR scores and link-based scores associated with the documents. Severaltechniques exist for determining the link-based score of a document. Onesuch technique is described in U.S. Pat. No. 6,285,999, entitled “METHODFOR NODE RANKING IN A LINKED DATABASE,” the contents of which areincorporated by reference.

Category suggestion engine 420 may suggest one or more categories thatrelate to the search. In operation, category suggestion engine 420 mayidentify categories associated with the top N (e.g., 1000) documents inthe list of search results. The categories may be obtained from a numberof different category providers, such as yellow pages and webdirectories, or derived using an automatic text classification system. Acategory associated with a document may be pre-stored with the documentin a database associated with server 220. In this case, categorysuggestion engine 420 may identify the category by looking it up in thedatabase. A document may have one or more associated categories.

Category suggestion engine 420 may score the categories based on thescores of the associated documents in the list of search results. Forexample, a score assigned to a category associated with a document witha higher score may be higher than a score assigned to a categoryassociated with a document with a lower score. In some cases, it may bepossible for the categories associated with two different documents tobe assigned the same score, such as when the two documents have similarscores.

Category suggestion engine 420 may combine (e.g., add) the scoresassigned to the categories. For example, a category may be associatedwith a number of documents in the list of search results. Categorysuggestion engine 420 may add the scores for the category to identifyits final score. Category suggestion engine 420 may then identify thehighest scoring one or more categories and present them as suggestionsfor the search with the list of search results.

According to another implementation, category suggestion engine 420 maycount the number of occurrences of each of the categories. Categorysuggestion engine 420 may then assign a final score to the categoriesbased on their number of occurrences. Category suggestion engine 420 maythen identify the highest scoring one or more categories and presentthem as suggestions for the search with the list of search results.

Sometimes the categories are derived from a number of different categoryproviders that may use different naming schemes. For example, a categoryfor pizza restaurants may be named “pizza restaurant” under one namingscheme and “restaurant: pizza” under another naming scheme. In oneimplementation, category suggestion engine 420 may consider similarcategory names as the same category for scoring purposes. Also, categorysuggestion engine 420 may use the naming scheme associated with thehighest scoring category when presenting category suggestions. Inanother implementation, category suggestion engine 420 may use adifferent technique.

Exemplary Processing

FIG. 5 is a flowchart of exemplary processing for presenting categorysuggestions relating to a search according to an implementationconsistent with the principles of the invention. Processing may beginwith server 220 receiving a search query (block 510). In oneimplementation, a user may use a web browser associated with a client210 to provide the search query to server 220.

A search may be performed to identify a set of documents based on thesearch query (block 520). For example, the term(s) of the search querymay be compared to the text of documents in the document corpus.Documents related to the search query may be identified and scored in amanner similar to that described above.

Categories associated with the top N (e.g., 1000) documents in the listof search results may be identified (block 530). In one implementation,the categories may be identified by looking up category information in adatabase.

The categories may be scored based on the positions of the associateddocuments in the list of search results (block 540). For example, thecategory scores may, in one implementation, be based on the scores(which determine the position) of the associated documents in the listof search results. The scores for each of the categories may then becombined (e.g., added) to identify a final score assigned to thecategory (block 550). In another implementation, final scores may beassigned to the categories based on a count of the number of occurrencesof the categories.

The one or more highest scoring categories may be presented assuggestions for the search along with the list of search results (block560). The category suggestions may assist the user in refining thesearch query to find documents in which the user is interested. Forexample, if the user selects one of the category suggestions, a refinedsearch may be performed to identify documents in the list of searchresults that are assigned to the category corresponding to the selectedcategory suggestion. Alternatively, the documents in the list of searchresults may be replaced with documents associated with the selectedcategory suggestion.

EXAMPLE

FIGS. 6-9 are exemplary diagrams of a local search user interface thatmay be presented to a user according to an implementation consistentwith the principles of the invention. As shown in FIG. 6, a userinterface may be presented relating to local searching. The local searchuser interface may permit a user to search for business listings in aparticular location. To assist the user in searching, the user interfacemay provide a “What” field and a “Where” field. For example, the usermay enter the name of a business (e.g., “Pizza Hut”) or a type ofbusiness (e.g., pizza restaurant) in the “What” field. The user mayenter the name of a location (e.g., Albany, N.Y.) in the “Where” field.Assume for this example, that the user entered “maternity dress” in theWhat field and “Fairfax, Va.” in the Where field of the user interface.

A server associated with the local search user interface, such as server220, may perform a search based on the search terms “maternity dress”and “Fairfax Va.” to identify documents associated with businessesrelating to the search terms “maternity dress” in the “Fairfax, Va.”location and include the identified documents in a list of searchresults. As described above, categories may be identified for thedocuments, the categories may be scored, and the one or more highestscoring categories may be determined.

As shown in FIG. 7, the local search user interface may present the listof search results. For each document in the list of the search results(or for some set of the search results), the user interface may provideaddress information for the business associated with the document, atelephone number for the business, a link to more information associatedwith the business, a link to directions to the business, and/or a linkto one or more documents that refer to the business. The user interfacemay also provide a map of the area covered by the search. The map mayoptionally include pointers to businesses associated with the list ofsearch results (or some set of the search results).

As further shown in FIG. 7, the local search user interface may presentone or more category suggestions relating to the search. As explainedabove, the category suggestions may correspond to the one or morehighest scoring categories. In the example of FIG. 7, the categorysuggestions include a “Clothing Stores” category and a “Consignment &Resale Stores” category.

Assume that the user selected the clothing stores category. In thiscase, the server may refine the search to identify documents associatedwith businesses relating to the search terms “maternity dress” in the“Fairfax, Va.” location that are assigned to the clothing storescategory and include the identified documents in a modified list ofsearch results. Alternatively, the server may replace the user's searchquery with the selected category. In this case, the server may providedocuments relating to the selected category as a modified list of searchresults.

As shown in FIG. 8, the local search user interface may present themodified list of search results. For each document in the modified listof the search results (or for some set of the search results), the userinterface may provide address information for the business associatedwith the document, a telephone number for the business, a link to moreinformation associated with the business, a link to directions to thebusiness, and/or a link to one or more other web documents that refer tothe business. The user interface may also provide a map of the areacovered by the search. The map may optionally include pointers tobusinesses associated with the list of search results (or some set ofthe search results).

Assume that the user selected the consignment & resale stores category.In this case, the server may refine the search to identify documentsassociated with businesses relating to the search terms “maternitydress” in the “Fairfax, Va.” location that are assigned to theconsignment & resale stores category and include the identifieddocuments in a modified list of search results. Alternatively, theserver may replace the user's search query with the selected category.In this case, the server may provide documents relating to the selectedcategory as a modified list of search results.

As shown in FIG. 9, the local search user interface may present themodified list of search results. For each document in the modified listof the search results (or for some set of the search results), the userinterface may provide address information for the business associatedwith the document, a telephone number for the business, a link to moreinformation associated with the business, a link to directions to thebusiness, and/or a link to one or more other web documents that refer tothe business. The user interface may also provide a map of the areacovered by the search. The map may optionally include pointers tobusinesses associated with the list of search results (or some set ofthe search results).

CONCLUSION

Systems and methods consistent with the principles of the invention mayperform a search to identify documents based on a search query and useinformation regarding the categories to which the documents are assignedto suggest categories that relate to the search. The categories may beused to further define or replace the search and present a user withresults that are relevant to the user's interests.

The foregoing description of preferred embodiments of the presentinvention provides illustration and description, but is not intended tobe exhaustive or to limit the invention to the precise form disclosed.Modifications and variations are possible in light of the aboveteachings or may be acquired from practice of the invention.

For example, while a series of acts has been described with regard toFIG. 5, the order of the acts may be modified in other implementationsconsistent with the principles of the invention. Further, non-dependentacts may be performed in parallel.

Also, exemplary user interfaces have been described with respect toFIGS. 6-9. In other implementations consistent with the principles ofthe invention, the user interfaces may include more, fewer, or differentpieces of information.

The category suggestions have been described as relating to the search.One skilled in the are would readily recognize that the categorysuggestions also relate to interests of the user who provided the searchquery.

Further, certain portions of the invention have been described as an“engine” that performs one or more functions. An engine may includehardware, such as an application specific integrated circuit or a fieldprogrammable gate array, software, or a combination of hardware andsoftware.

It will be apparent to one of ordinary skill in the art that aspects ofthe invention, as described above, may be implemented in many differentforms of software, firmware, and hardware in the implementationsillustrated in the figures. The actual software code or specializedcontrol hardware used to implement aspects consistent with theprinciples of the invention is not limiting of the invention. Thus, theoperation and behavior of the aspects were described without referenceto the specific software code—it being understood that one of ordinaryskill in the art would be able to design software and control hardwareto implement the aspects based on the description herein.

No element, act, or instruction used in the present application shouldbe construed as critical or essential to the invention unless explicitlydescribed as such. Also, as used herein, the article “a” is intended toinclude one or more items. Where only one item is intended, the term“one” or similar language is used. Further, the phrase “based on” isintended to mean “based, at least in part, on” unless explicitly statedotherwise.

1. A method performed by a server device, comprising: receiving, by aprocessor of the server device and from a client device, a search queryassociated with a geographic area; performing, by the processor, asearch based on the search query to identify a set of documents that areassociated with businesses located in or near the geographic area;scoring, by the processor, the documents in the set of documents;identifying, by the processor, categories for documents in the set ofdocuments; assigning, by the processor, scores to the categories, basedon the scores of corresponding documents in the set of documents, by:assigning initial scores to the categories based on the scores ofcorresponding ones of the documents, and combining one or more of theinitial scores assigned to one of the categories to generate the scorefor the one of the categories; and providing, by the processor and tothe client device, information associated with one or more of thecategories, as one or more category suggestions, based on the assignedscores.
 2. The method of claim 1, further comprising: sorting thedocuments based on their scores; and forming the sorted documents into alist of search results.
 3. The method of claim 1, where determiningcategories for documents in the set of documents comprises looking upthe categories in a database.
 4. The method of claim 1, furthercomprising: presenting information associated with the set of documentsalong with the information associated with the one or more categorysuggestions.
 5. The method of claim 1, where a naming scheme associatedwith the one or more category suggestions corresponds to a naming schemeassociated with a highest scoring one of the categories.
 6. The methodof claim 1, further comprising: receiving selection of one of the one ormore category suggestions; and refining the search based on the selectedone of the one or more category suggestions.
 7. The method of claim 1,further comprising: receiving selection of one of the one or morecategory suggestions; and replacing the documents from the search withdocuments associated with the selected one of the one or more categorysuggestions.
 8. A method performed by a device, comprising: identifying,by the device, categories for business listings identified in a list ofsearch results; assigning, by the device, scores to the categories by:assigning initial scores to the categories based on scores ofcorresponding ones of the business listings, and combining one or moreof the initial scores assigned to one of the categories to generate thescore for the one of the categories; and presenting, by the device,information associated with one or more high scoring ones of thecategories as one or more category suggestions relating to the list ofsearch results.
 9. The method of claim 8, where a naming scheme used topresent the one or more category suggestions corresponds to a namingscheme associated with a highest scoring one of the categories.
 10. Amethod performed by a server device, comprising: performing, by aprocessor of the server device, a search based on a search query toidentify a group of documents that are associated with businesseslocated in a particular geographic area; assigning, by the processor,scores to the documents; sorting, by the processor, the documents basedon the scores of the documents; forming, by the processor, the sorteddocuments into a list of search results; identifying, by the processor,categories associated with documents in the group of documents, whereeach of the categories corresponds to one of the documents; assigning,by the processor, scores to the categories based on positions of thecorresponding documents in the list of search results; combining, by theprocessor, the scores of each of the categories to determine a finalscore for each of the categories; presenting, by the processor, the listof search results; and presenting, by the processor, informationassociated with one of the categories, as a category suggestion, basedon the final score for the one of the categories.
 11. The method ofclaim 10, where presenting the information associated with one of thecategories includes: identifying one of the categories that has ahighest final score among the final scores of the categories, andpresenting information associated with the one of the categories thathas the highest assigned score as the category suggestion.
 12. Themethod of claim 10, further comprising: receiving selection of thecategory suggestion; and refining the search query based on the selectedcategory suggestion.
 13. A computer-readable memory device that storescomputer-executable instructions, comprising: one or more instructionsfor performing a search based on a search query to identify a set ofbusiness listings associated with a geographic area; one or moreinstructions for identifying categories for business listings in the setof business listings; one or more instructions for assigning scores tothe categories, where the one or more instructions for assigning thescores to the categories includes: one or more instructions for countinga number of occurrences of one of the categories corresponding to one ofthe business listings in the set of business listings, and one or moreinstructions for assigning a score to the one of the categories based onthe number of occurrences of the one of the categories; and one or moreinstructions for providing information associated with one or more ofthe categories, as one or more category suggestions, based on theassigned scores.
 14. The computer-readable memory device of claim 13,where a naming scheme used to provide the one or more categorysuggestions corresponds to a naming scheme associated with a highestscoring one of the categories.
 15. A search system implemented withinone or more devices, comprising: a search engine to: receive a searchquery associated with a geographic area, identify a group of documentsthat are associated with locations in or near the geographic area basedon the search query, and score documents in the group of documents; anda category suggestion engine to: identify categories associated with thedocuments in the group of documents, score the categories by: assigninginitial scores to the categories based on the scores of correspondingones of the documents, and combining one or more of the initial scoresassigned to one of the categories to generate the score for the one ofthe categories, and present information associated with one or morehighest scoring ones of the categories as one or more categorysuggestions.
 16. The system of claim 15, where the search engine isfurther configured to: sort the documents based on the scores, and formthe sorted documents into a list of search results.
 17. The system ofclaim 15, where, when identifying categories associated with documentsin the group of documents, the category suggestion engine is configuredto identify one or more categories for each document in a subset of thedocuments in the group of documents.
 18. The system of claim 15, where,when identifying categories associated with documents in the group ofdocuments, the category suggestion engine is configured to look up thecategories in a database.
 19. The system of claim 15, where, whenpresenting information associated with the one or more highest scoringones of the categories as one or more category suggestions, the categorysuggestion engine is configured to also present information associatedwith the group of documents.
 20. The system of claim 15, where a namingscheme associated with the one or more category suggestions correspondsto a naming scheme associated with a highest scoring one of thecategories.
 21. The method of claim 15, where, when scoring thedocuments, the search engine is configured to score the documents basedon a match between the search query and contents of the documents. 22.One or more devices, comprising: means for receiving a search query;means for performing a search to identify business listings based on thesearch query; means for identifying categories for at least some of thebusiness listings; means for assigning scores to the categories, wherethe means for assigning the scores includes: means for counting a numberof occurrences of each of the categories, and means for assigning scoresto the categories based on the number of occurrences of the categories;and means for providing information associated with one or more of thecategories, as one or more category suggestions relating to the search,based on the assigned scores.
 23. The one or more devices of claim 22,where a naming scheme used to provide the one or more categorysuggestions corresponds to a naming scheme associated with a highestscoring one of the categories.